音频(Audio)
在 Unity Runtime 中,Rive 文件里的音频会通过 AudioProvider 路由到 Unity 音频系统。AudioProvider 本质上是对 AudioSource 的封装,用于把 Rive 音频混入 Unity 的音频管线。
注意(Note):WebGL 构建不支持
AudioProvider路径。在 WebGL 上会自动回退为系统音频播放。
工作机制
每个播放音频的 RiveWidget 都需要一个 AudioProvider。
- 默认:所有未指定自定义 provider 的 widget 共享一个全局 provider(自动创建)
- 可选:你可以给某些 widget 指定独立 provider(便于独立音量、Mixer Group 控制)
使用自定义 AudioProvider
- 在场景某个 GameObject 上添加
AudioProvider(会自动附带AudioSource) - 在
RiveWidgetInspector 的Custom Audio Provider里绑定它
或代码设置:
[SerializeField] private RiveWidget m_riveWidget;
[SerializeField] private AudioProvider m_audioProvider;
private void Start()
{
m_riveWidget.CustomAudioProvider = m_audioProvider;
}
将 CustomAudioProvider 置为 null 会回退到全局 provider。
平台行为
- Editor / Standalone:通过
AudioSource播放 - iOS / Android:通过
AudioSource播放,启动时自动Play() - WebGL:使用系统音频,
AudioProvider无效并会告警
AudioProvider 字段
AudioSource:实际播放组件(必需)